package com.sheepjin.design_pattern.行为型模式.策略模式.entity;

import com.sheepjin.design_pattern.行为型模式.策略模式.intf.StrategyInterface;

/**
 * 策略执行类
 *
 * @author yang
 */
public class StrategyExec {

    /**
     * 策略接口
     */
    private StrategyInterface strategyInterface;

    /**
     * 策略执行类无参构造
     */
    public StrategyExec() {
    }

    /**
     * 策略执行类有参构造
     *
     * @param strategyInterface 策略接口
     */
    public StrategyExec(StrategyInterface strategyInterface) {
        this.strategyInterface = strategyInterface;
    }

    /**
     * 获取策略接口
     *
     * @return 策略接口
     */
    public StrategyInterface getStrategyIntergace() {
        return strategyInterface;
    }

    /**
     * 设置策略接口（指向子类）
     *
     * @param strategyInterface 策略接口子策略
     */
    public void setStrategyIntergace(StrategyInterface strategyInterface) {
        this.strategyInterface = strategyInterface;
    }

    /**
     * 策略代理方法
     *
     * @return 方法处理结果：出行方式
     */
    public String goingOutWay() {
        return strategyInterface.goingOutWay();
    }
}
